package com.gitee.wsl.flow.transform

import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.map

fun <T> Flow<List<T>>.pad(capacity: Int, fillAfter: Boolean) = map { actual ->
    val size = actual.size
    if (capacity > size) {
        val pad = List(capacity - size) { null }
        if (fillAfter) actual + pad
        else pad + actual
    } else actual
}